<?php
    /**
     * 路由分析
     */
    function url_init(){
        //0.加载核心控制器
        require APP_PATH . 'core/MvcController.class.php';
        //1获取模块
        define('MODULE',getModule());
        //2获取控制器
        define('CONTROLLER',getController(MODULE));
        $controller_name = CONTROLLER . 'Controller';
        //3加载控制器
        $controller_instance = new $controller_name();
        //3获取方法
        define('ACTION',getAction());
        $action_name = ACTION;
        //判断方法是否存在 
        if(method_exists($controller_instance, $action_name)){
           $controller_instance -> $action_name();
        }else{
           app_exit("Actiion Forbidden!");
        }
        
    }
    
    /**
     * 获取模块
     */
    function getModule(){
        $default_module = C('DEFAULT_MODULE') ? C('DEFAULT_MODULE') : 'Home';
        $default_list = C('MODULE_LIST');
        $module_name = @$_GET['m'] ? @$_GET['m'] : $default_module;
        if(in_array($module_name,$default_list)){
           return $module_name;
        }
        app_exit("Module Forbidden!");
    }
    
    /**
     * 获取控制器
     */
    function getController($module_name){
        $default_c = C('DEFAULT_CONTROLLER') ? C('DEFAULT_CONTROLLER') : 'Index';
        $controller_prefix_name = @$_GET['c'] ? @$_GET['c'] : $default_c;
        $c_file_name = $controller_prefix_name . 'Controller.class.php';
        //判断文件是否存在 file_exists
        if(file_exists( APPLIACTION_PATH . $module_name .'/Controller/' . $c_file_name)){
            return $controller_prefix_name;
        }
        app_exit("Controller Forbidden!");
    }
    
    /**
     * 获取action
     */
    function getAction(){
        $default_action = C('DEFAULT_ACTION') ? C('DEFAULT_ACTION') : 'index';
        return @$_GET['a'] ? @$_GET['a'] : $default_action;
    }
     
    //获取配置信息
    function C($config_name){
        return $GLOBALS['config'][$config_name];
    }
    
    //报错返回
    function app_exit($msg){
        echo $msg;
        exit;
    }
    
    //自动加载类
    function __autoload($class_name){
        require APPLIACTION_PATH . MODULE . '/Controller/' . $class_name . '.class.php';
    }
